package br.com.foxinline.servico.titulodocumento;


import br.com.foxinline.modelo.titulodocumento.AtoTipoTituloDocumento;
import br.com.foxinline.servico.ServicoGenerico;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.Query;

/**
 *
 * @author cadomeireles
 */
@Stateless
public class AtoTipoTituloDocumentoServico extends ServicoGenerico<AtoTipoTituloDocumento> {

    public AtoTipoTituloDocumentoServico() {
        super(AtoTipoTituloDocumento.class);
    }  

    @Override
    public void deletar(AtoTipoTituloDocumento atoTipo) {
        atoTipo.setAtivo(false);
        super.atualizar(atoTipo);
    }

    public List<AtoTipoTituloDocumento> pesquisar(AtoTipoTituloDocumento atoTipo) {
        String sql = "select atoTipo from AtoTipoTituloDocumento atoTipo where atoTipo.ativo = true";
        
        if (!atoTipo.getDescricao().isEmpty()) {
            sql += " and lower(atoTipo.descricao) like '%" + atoTipo.getDescricao().toLowerCase() + "%'";
        }
        
        Query query = getEntityManager().createQuery(sql);
        return query.getResultList();
    }    

    public List<AtoTipoTituloDocumento> autocompletar(String query){
        return buscarPeloNome(query);
    }

    public List<AtoTipoTituloDocumento> buscarPeloNome(String query){
        List<AtoTipoTituloDocumento> atoTipos = getEntityManager().createQuery("select atoTipo from " + AtoTipoTituloDocumento.class.getSimpleName() + " atoTipo where atoTipo.ativo = true and lower(atoTipo.descricao) like '%" + query.toLowerCase().trim() + "%'").getResultList();
        return atoTipos;
    }    
    
}
